commonlibsse_ng\re\p\PlayerCharacter/
grab_data.rs1use crate::re::{
2 BSPointerHandle::ObjectRefHandle, BSTArray::BSTSmallArray,
3 bhkMouseSpringAction::bhkMouseSpringAction, hkRefPtr::hkRefPtr,
4};
5
6#[derive(Debug, Default, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
7pub enum GrabbingType {
8 #[default]
9 None = 0,
10 Normal = 1,
11 Telekinesis = 2,
12}
13
14#[repr(C)]
15#[derive(Debug, Default, Clone, PartialEq)]
16pub struct GrabData {
17 grabSpring: BSTSmallArray<hkRefPtr<bhkMouseSpringAction>, 4>,
18 grabbedObject: ObjectRefHandle,
19 grabObjectWeight: f32,
20 grabDistance: f32,
21 unk004: f32,
22 unk008: u64,
23}
24const _: () = {
25 assert!(core::mem::offset_of!(GrabData, grabSpring) == 0x0);
26 assert!(core::mem::offset_of!(GrabData, grabbedObject) == 0x30);
27 assert!(core::mem::offset_of!(GrabData, grabObjectWeight) == 0x34);
28 assert!(core::mem::offset_of!(GrabData, grabDistance) == 0x38);
29 assert!(core::mem::offset_of!(GrabData, unk004) == 0x3c);
30 assert!(core::mem::offset_of!(GrabData, unk008) == 0x40);
31
32 assert!(core::mem::size_of::<GrabData>() == 0x48);
33};
34
35#[repr(C)]
36#[derive(Debug, Default, Clone, PartialEq)]
37pub struct VRGrabData {
38 grabSpring: BSTSmallArray<hkRefPtr<bhkMouseSpringAction>, 0x20>,
40 grabbedObject: ObjectRefHandle,
41 grabObjectWeight: f32,
42 grabType: GrabbingType,
43 grabDistance: f32,
44 unk40: f64,
45 unk48: u64,
46 unk50: f64,
47 unk58: u64,
48 unk60: u32,
49 unk64Flags: u32,
50}